﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Citas.Dominio;
using NHibernate;
using NHibernate.Criterion;

namespace Citas.Persistencia.NH
{
    public class PacienteDAO : BaseDAO<Paciente, Int32>, IPacienteDAO
    {

        public Paciente ObtenerXDoc(string numeroDocumento)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICriteria busqueda = sesion.CreateCriteria(typeof(Paciente));
                busqueda.Add(Restrictions.Eq("NumeroDocumento", numeroDocumento));
                return busqueda.UniqueResult<Paciente>();
            }
        }

        public ICollection<Paciente> ListarXDocumento(String documento)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICollection<Paciente> resultado = sesion
                                        .CreateCriteria(typeof(Paciente))
                                        .Add(Restrictions.Like("NumeroDocumento", documento + "%"))
                                        .List<Paciente>();
                return resultado;

            }
        }

        public ICollection<Paciente> ListarXNombre(String nombre)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICollection<Paciente> resultado = sesion
                                        .CreateCriteria(typeof(Paciente))
                                        .Add(Restrictions.Like("ApellidoPaterno", nombre + "%"))
                                        .List<Paciente>();
                return resultado;

            }
        }
    }
}